package cn.seaboot.admin.mvc.argument;

import cn.seaboot.commons.lang.Null;
import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

/**
 * 客户端参数校验注解
 * <p>
 * 同类注解：{@link javax.validation.constraints.NotEmpty}
 *
 * @author Created by Mr.css on 2018/5/11.
 */
@Documented
@Target(value = ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface Params {
    /**
     * 参数名
     */
    @AliasFor("name")
    String value() default Null.STRING;

    /**
     * 参数名
     */
    @AliasFor("value")
    String name() default Null.STRING;

    /**
     * 提示用参数名（中文名称 Label）
     */
    String label() default Null.STRING;

    /**
     * 不为空
     */
    boolean notEmpty() default true;

    /**
     * 最大长度
     */
    int length() default Integer.MAX_VALUE;

    /**
     * 默认值
     */
    String defaultValue() default Null.STRING;
}
